دستور SELECT در SQL – راهنمای استفاده به زبان ساده + مثال – فرادرس | 您所在的位置:网站首页 › {"release"{"tag"{"name""v212""path""BarrydaQtScrcpy › دستور SELECT در SQL – راهنمای استفاده به زبان ساده + مثال – فرادرس |
زبان «پرس و جوی ساختاریافته» (Structured Query Language) یا به اختصار، زبان SQL، به عنوان یکی از مهمترین و محبوبترین زبانها به حساب میآید که از آن برای انجام عملیات مختلف بر روی دادههای ذخیره شده در پایگاههای داده استفاده میشود. این زبان، دارای دستورات مختلفی برای کار با دادهها است که دستور SELECT در SQL به عنوان یکی از پرکاربردترین آنها شناخته میشود. این دستور برای بازیابی اطلاعات مختلف از جداول موجود در پایگاه داده کاربرد دارد. در مطلب حاضر، پس از ارائه توضیح مختصری پیرامون پایگاه داده و جزء اصلی آن، یعنی جدول، و شرح مختصری از رایجترین دستورات زبان SQL، به روشهای مختلف استخراج اطلاعات از جدولها با استفاده از دستور SELECT در SQL پرداخته میشود. فهرست مطالب این نوشتهپایگاه داده چیست ؟جدول در پایگاه داده چیست ؟زبان SQL چیست و مهمترین دستورات آن چه هستند؟مهم ترین دستورات SQL کدامند؟دستور SELECT در SQL چیست ؟بازیابی اطلاعات جدول با دستور SELECT در SQLاستخراج کل اطلاعات جدول با دستور SELECT در SQLاستخراج برخی ستون های جدول با دستور SELECT در SQLاستخراج اطلاعات غیرتکراری از جدول SQL با دستور DISTINCTنمایش چندین سطر ابتدایی جدول SQL با دستور TOPنمایش اولین و آخرین مقادیر ستونهای جدول SQL با دستور FIRST و LASTبازیابی اطلاعات از جدول SQL با توابع تجمیعی در دستور SELECT در SQLتابع COUNT در دستور SELECTتابع SUM در دستور SELECTتابع AVG در دستور SELECTتابع MIN برای دستور SELECT در SQLتابع MAX در دستور SELECTمعرفی فیلم های آموزش پایگاه دادهاستخراج برخی از سطرهای جدول با استفاده از دستور WHEREکاربرد عملگرهای مقایسه ای دستور SELECT در SQL چیست ؟عملگر مساوی برای تعریف شرط در دستور SELECTعملگر کوچکتر برای تعریف شرط در دستور SELECTعملگر بزرگتر برای تعریف شرط در دستور SELECTعملگر کوچکتر مساوی برای تعریف شرط در دستور SELECTعملگر بزرگتر مساوی برای تعریف شرط در دستور SELECTعملگر نامساوی برای تعریف شرط در دستور SELECTعملگرهای منطقی دستور SELECT در SQL چیست ؟عملگر OR در دستور SELECTعملگر NOT در دستور SELECTعملگر BETWEEN دستور SELECTعملگر LIKE دستور SELECTعملگر IS NULL دستور SELECTعملگر ANY دستور SELECTعملگر ALL دستور SELECTعملگر EXISTS دستور SELECTعملگر IN دستور SELECTبازیابی اطلاعات جدول به صورت گروه بندی شده با دستور GROUP BYکاربرد دستور HAVING در SQL برای استخراج برخی از اطلاعات گروه بندی شده از جدولتفاوت دستور WHERE و HAVING در SQL چیست ؟بازیابی اطلاعات جدول با ترتیب صعودی و نزولی در SQLبازیابی اطلاعات از چندین جدول با دستور SELECT در SQLدستور INNER JOINدستور LEFT JOINدستور RIGHT JOIN در SELECT اس کیو الدستور FULL OUTER JOINدستور CROSS JOIN برای SELECT در SQLجمعبندی پایگاه داده چیست ؟پایگاه داده یا بانک اطلاعاتی بستری را برای ذخیره مجموعهای از دادهها به صورت ساختاریافته و در قالب جداول فراهم میکند و این قابلیت را به کاربران میدهد تا بتوانند دادههای مورد نیاز خود را بازیابی کنند. همچنین، میتوان دادههای ذخیره شده در پایگاههای داده را ویرایش، بهروزرسانی و مدیریت کرد. برخی از پرکاربردترین و رایجترین پایگاههای داده در ادامه فهرست شدهاند: Oracle MySQL PostgreSQL MS SQL Server SQLiteیکی از انواع پایگاههای داده، «پایگاه داده رابطهای» (Relational Database) است. در این نوع پایگاه داده، دادههایی که به هم مرتبط هستند، در جداول مختلف ذخیره میشوند و بر اساس دادههای مشترک جداول، رابطهای میان جداول پایگاه داده وجود دارد. فیلم آموزش پایگاه داده ها و اصول طراحی آن در فرادرس کلیک کنیددر ادامه، به شرح مختصری پیرامون جداول پایگاه داده پرداخته میشود. جدول در پایگاه داده چیست ؟جداول به عنوان اشیای پایگاه داده تلقی میشوند که دادهها را بهصورت ساختاریافته در خود ذخیره میکنند. هر جدول شامل تعدادی سطر و ستون است. به هر سطر جدول، «رکورد» (Record) گفته میشود که اطلاعات منحصربفرد یک «موجودیت» (Entity) را دربر میگیرد. هر یک از ستونهای جداول نیز ویژگیهای تعریف شده را برای هر سطر نشان میدهند. به عنوان مثال، جدول اطلاعات دانشآموزان، نمونهای از جدول در پایگاه داده است. مثالی از جدول اطلاعات دانشآموزان در SQLدر جدول فوق، هر سطر مربوط به اطلاعات یک موجودیت است (در این مثال منظور از موجودیتها، دانشآموزان هستند) و ستونهای جدول، ویژگیهای موجودیت را نشان میدهند. در پایگاه داده، مفهوم دیگری به نام «کلید» (Key) نیز وجود دارد که در هنگام ساخت جدول باید انواع کلیدها مشخص شوند. در پایگاههای داده رابطهای، معمولاً یک ستون از جدول را به مقادیر منحصربهفردی اختصاص میدهند که با آن بتوان به هر یک از سطرها دسترسی داشت و به آن ستون، «کلید اصلی» (Primary Key) گفته میشود. به عبارتی، مقادیر این ستون، غیرتکراری هستند و به منظور ایجاد ارتباط بین جدولهای مختلف در پایگاه داده، از مقادیر این ستونها استفاده میشود. در جدول بالا، ستون stud_id میتواند به عنوان کلید اصلی جدول Students محسوب شود. فرض کنید علاوهبر جدول Students، جدول دیگری با نام Departments وجود دارد که اطلاعات دانشکدهها و دانشآموزان هر دانشکده را ذخیره میکند. در این جدول، ستونی با نام stud_id نیز تعریف شده است که مقادیر آن با توجه به مقادیر ستون stud_id جدول Students مقداردهی میشود. در این حالت، ستون stud_id در جدول Departments به عنوان «کلید خارجی» (Foreign key) به حساب میآید و ارتباط این دو جدول با استفاده از کلید اصلی (در جدول Students) و کلید خارجی (در جدول Departments) برقرار میشود. مثالی از جدول اطلاعات دانشکدهها در SQLبه منظور دسترسی به دادههای جداول و اعمال عملیات مختلف بر روی آنها، از «زبان پرس و جوی | ساختاریافته» (Structured Query Language | SQL) استفاده میشود. در بخش بعدی، به طور مختصر به معرفی این زبان خواهیم پرداخت. زبان SQL چیست و مهمترین دستورات آن چه هستند؟در پایگاههای داده رابطهای به منظور ساخت جداول و View، اضافه کردن داده جدید، اعمال تغییرات بر روی دادههای پایگاه داده، بازیابی دادهها و بهروزرسانی آنها از از زبان برنامه نویسی استاندارد SQL استفاده میشود. پردازش دادهها با استفاده از زبان SQL سریع انجام میشود و با استفاده از «قواعد نحوی» (Syntax) ساده در این زبان، میتوان عملیات مختلفی را بر اساس دادهها انجام داد. در خصوص چیستی SQL پیش از این مطلبی جامع و کاربردی در مجله فرادرس منتشر شده است که مطالعه آن برای آشنایی بیشتر با SQL به علاقهمندان پیشنهاد میشود. فیلم آموزش کوئری نویسی پیشرفته در SQL Server در فرادرس کلیک کنید مهم ترین دستورات SQL کدامند؟زبان SQL دارای ۴ دستور مهم و کاربردی برای اعمال تغییرات و بازیابی اطلاعات از جداول موجود در پایگاه داده است که در ادامه به آنها اشاره میشود: دستور SELECT در SQL: از این دستور میتوان برای بازیابی اطلاعات از جداول موجود در پایگاه داده استفاده کرد. دستور INSERT در SQL: از این دستور به منظور درج سطر جدید در جدول استفاده میشود. دستور UPDATE در SQL: این دستور را میتوان برای ویرایش اطلاعات موجود در جدول استفاده کرد. دستور DELETE در SQL: این دستور را برای حذف سطری از جدول میتوان به کار برد.پیش از این مطلبی در مجله فرادرس برای گزارههای Insert ،Update و Delete در SQL منتشر شده است که برای یادگیری این دستورات میتوان آن را مطالعه کرد. از میان دستورات فوق، دستور SELECT در SQL به عنوان پرکاربردترین دستور این زبان شناخته میشود که میتوان با استفاده از آن، اطلاعات یک یا بیش از یک جدول را با نوستن دستورات ساده تا پیچیده بازیابی کرد. در ادامه مطلب، به توضیح جزئیتر نحوه استفاده از دستور SELECT در SQL پرداخته میشود. دستور SELECT در SQL چیست ؟یکی از اهداف ذخیره کردن دادهها در جداول پایگاه داده، بازیابی آنها به منظور تهیه گزارشات و تجزیه و تحلیل آنها است. بدین منظور، از دستور SELECT در SQL استفاده میشود. به عبارتی، از این دستور میتوان اطلاعات مختلفی را از جدول بر اساس نام ستونهای جدول و با در نظر گفتن شرطهای مختلف استخراج کرد. بهعلاوه، میتوان خروجی اطلاعات را بر اساس مقادیر ستونهای جدول، به ترتیب نزولی یا صعودی بازیابی کرد. در ادامه مطلب، به توضیح انواع حالتهای بازیابی اطلاعات از جداول پایگاه داده با استفاده از دستور SELECT در SQL پرداخته شده است. بازیابی اطلاعات جدول با دستور SELECT در SQLاز دستور SELECT در SQL میتوان به منظور بازیابی اطلاعات مورد نظر از یک جدول استفاده کرد. در این حالت، میتوان برای استخراج اطلاعات از جدول مورد نظر، حالات مختلفی را در نظر گرفت که در ادامه به فهرستی از این حالات اشاره شده است. بازیابی تمامی اطلاعات موجود در جدول نمایش برخی از ستونهای جداول پایگاه داده استخراج اطلاعات غیرتکراری از جدول SQL با دستور UNIQUE نمایش چندین سطر ابتدایی جدول SQL در خروجی با دستور TOP نمایش اولین و آخرین مقادیر ستونهای جدول SQL با دستور FIRST و LAST بازیابی اطلاعات از جدول SQL با استفاده از «توابع تجمیعی» (Aggregate Functions) در دستور SELECT استخراج برخی از سطرهای جدول با استفاده از دستور WHERE در SQL بازیابی اطلاعات جدول بهصورت گروهبندی شده با دستور GROUP BY استخراج برخی از اطلاعات گروهبندی شده از جدول با استفاده از دستور HAVING در SQL بازیابی اطلاعات جدول با ترتیب صعودی و نزولیدر ادامه مطلب حاضر، به توضیح نحوه استفاده از دستور SELECT در SQL برای هر یک از حالات ذکر شده در بالا پرداخته میشود. فیلم آموزش اس کیو ال سرور SQL Server – مقدماتی در فرادرس کلیک کنید استخراج کل اطلاعات جدول با دستور SELECT در SQLدر تمامی دستورات SELECT از دو کلمه کلیدی SELECT و FROM استفاده میشود. در مقابل کلمه کلیدی SELECT، میتوان مشخص کرد که اطلاعات چه ستونهایی از جدول باید بازیابی شوند. با استفاده از کلمه کلیدی FROM نیز میتوان نام جدولی را معین کرد که قرار است دادهها از آن استخراج شوند. به منظور بازیابی کل اطلاعات جدول با استفاده از دستور SELECT در SQL میتوان نام تمامی ستونهای جدول را مقابل کلمه کلیدی SELECT نوشت. در ادامه، نحوه تعریف دستور SELECT در SQL برای استخراج کل اطلاعات جدول ارائه شده است. 1SELECT Column_Name_1, Column_Name_2, ....., Column_Name_N 2FROM Table_Name;چنانچه جدولی با نام Students برای ذخیرهسازی اطلاعات دانشآموزان وجود داشته باشد و ستونهای Student_Id ،First_Name ،Address و Age را شامل شود، میتوان از «سینتکس» (قاعده نحوی) بالا برای استخراج کل اطلاعات جدول بهصورت زیر استفاده کرد: 1SELECT Student_Id, First_Name, Address, Age 2FROM Students;در جدول Students اطلاعات هفت دانشآموز ذخیره شده است که با استفاده از دستور SELECT در SQL میتوان آنها را به صورت زیر بازیابی کرد. مثالی از جدول اطلاعات دانشآموزان در SQLروش دیگری که میتوان آن را برای بازیابی تمامی اطلاعات جدول SQL به کار برد، استفاده از علامت * به جای نوشتن نام تمامی ستونهای جدول در مقابل دستور SELECT در SQL است. وقتی بخواهیم از همه ستونها استفاده کنیم، این روش را در پی میگیریم. در ادامه، نحوه بازیابی کل اطلاعات جدول با استفاده از این علامت در دستور SELECT ملاحظه میشود. 1SELECT * 2FROM Students;خروجی این دستور، مشابه با خروجی دستور قبل است که از نام همه ستونها برای بازیابی اطلاعات کل جدول استفاده شد. استخراج برخی ستون های جدول با دستور SELECT در SQLبه منظور بازیابی اطلاعات برخی از ستونهای جدول میتوان در مقابل دستور SELECT، فقط نام ستونهای مورد نظر را نوشت. در ادامه، مثالی از SQL برای بازیابی اطلاعات دو ستون Student_Id و First_Name از جدول Students ارائه شده است. 1SELECT Student_Id, First_Name 2FROM Students;خروجی دستور بالا در ادامه ملاحظه میشود. استخراج اطلاعات غیرتکراری از جدول SQL با دستور DISTINCTچنانچه لازم باشد سطرهایی از جدول SQL استخراج شوند که مقادیر یکی از ستونهای آن غیرتکراری باشد، از عبارت کلیدی DISTINCT در دستور SELECT استفاده میشود. قاعده نحوی این دستور در ادامه ملاحظه میشود. 1SELECT DISTINCT column_name 2FROM table_name;در ادامه جدولی با نام Customers با دادههای آن ملاحظه میشود. مثالی از جدول اطلاعات مشتریان در SQLبه منظور استخراج نام تمامی کشورهای غیرتکراری از این جدول، میتوان از کلمه کلیدی DISTINCT در دستور SELECT به صورت زیر استفاده کرد. 1SELECT DISTINCT country 2FROM Customers;خروجی دستور بالا در ادامه ملاحظه میشود. نمایش چندین سطر ابتدایی جدول SQL با دستور TOPبا استفاده از دستور TOP در SQL میتوان چندین سطر نخست جدول را بازیابی کرد. این دستور مناسب زمانی است که جدول، سطرهای زیادی دارد و نیاز است که تنها اطلاعات چند سطر از آن بررسی شود. قاعده نحوی این دستور در ادامه آمده است. 1SELECT TOP number | percent column_Name1, column_Name2, ....., column_NameN 2FROM table_name 3WHERE [Condition] ;جدول Cars را با دادههای زیر در نظر بگیرید. مثالی از جدول اطلاعات ماشینها در SQLاز این جدول میتوان سه سطر نخست آن را با دستور زیر استخراج کرد. 1SELECT TOP 3 Car_Name, Car_Color 2FROM Cars;در ادامه خروجی دستور بالا ملاحظه میشود. نمایش اولین و آخرین مقادیر ستونهای جدول SQL با دستور FIRST و LASTبا دستور FIRST و LAST در دستور SELECT میتوان اولین و آخرین مقادیر ستون مورد نظر خود را بازیابی کرد. قاعده نحوی این دستورات در ادامه ملاحظه میشوند. 1SELECT FIRST/LAST(customer_name) AS first_customer 2FROM customers;به عنوان مثال، جدولی با نام Customers را در نظر بگیرید که شامل دادههای زیر است. مثالی از جدول اطلاعات مشتریان در SQLبا استفاده از دستور SELECT و FIRST میتوان به اولین نام مشتری، یعنی John، در این جدول بهصورت زیر دست پیدا کرد. 1SELECT FIRST (first_name) 2FROM Customers;همچنین، میتوان با دستور LAST و SELECT در SQL آخرین نام مشتری از جدول Customers، یعنی Betty، را با دستور زیر استخراج کرد. 1SELECT LAST (first_name) 2FROM Customers; بازیابی اطلاعات از جدول SQL با توابع تجمیعی در دستور SELECT در SQLتوابع تجمیعی، توابعی هستند که در دستور SELECT به کار میروند و بر روی مقادیر ستون مشخص شده، محاسباتی را انجام میدهند و در نهایت، خروجی را برمیگردانند. از این توابع معمولاً با دستوراتی نظیر GROUP BY و HAVING استفاده میشود که در بخشهای بعدی مطلب حاضر، به کاربرد آنها پرداخته خواهد شد. توابع تجمیعی SQL در ادامه فهرست شدهاند: COUNT() SUM() AVG() MIN() MAX()در ادامه، به توضیح کاربرد هر یک از توابع تجمیعی ذکر شده، به همراه مثال پرداخته میشود. تابع COUNT در دستور SELECTتابع COUNT تعداد سطرها را در خروجی برمیگرداند. میتوان قاعده نحوی زیر را به منظور استفاده از تابع COUNT دستور SELECT در SQL به کار برد. 1SELECT COUNT(column_Name) 2FROM Table_Name;به منظور درک بهتر عملکرد این تابع، میتوان مثالی از آن ارائه کرد. جدول Customers را با دادههای زیر درنظر بگیرید. مثالی از جدول اطلاعات مشتریان در SQLبا دستور زیر، میتوان با استفاده از تابع COUNT، مقدار تعداد سطرهای جدول را در خروجی بازگرداند. 1SELECT COUNT(*) 2FROM Customers;خروجی دستور بالا در ادامه ملاحظه میشود. همچنین، میتوان برای ستونی که در خروجی نشان داده میشود، «نام مستعاری» (Alias) درنظر گرفت. بدین منظور، میتوان از کلمه کلیدی AS استفاده کرد و بعد از آن نام مستعار را تعریف کرد. در ادامه، مثالی از کاربرد نام مستعار برای نمایش خروجی تابع COUNT ملاحظه میشود. 1SELECT COUNT(*) AS total_customers 2FROM Customers;خروجی دستور بالا در ادامه آمده است. تابع SUM در دستور SELECTاز تابع SUM به منظور جمع مقادیر یک ستون استفاده میشود. سینتکس این تابع در دستور SELECT به صورت زیر است. 1SELECT SUM (Column_Name) 2FROM Table_Nameبه منظور درک بهتر چگونگی عملکرد این تابع، میتوان مثالی از آن ارائه کرد؛ جدول Orders را با دادههای زیر درنظر بگیرید. مثالی از جدول اطلاعات سفارشات مشتریان در SQLبا دستور زیر، میتوان به وسیله تابع SUM مقدار کل سفارشات مشتریان را در خروجی بازگرداند. 1SELECT SUM(amount) AS total_sales 2FROM Orders;خروجی دستور بالا در ادامه ملاحظه میشود. تابع AVG در دستور SELECTتابع AVG یکی دیگر از توابع تجمیعی در SQL محسوب میشود که از آن میتوان برای محاسبه میانگین مقادیر یک ستون استفاده کرد. قاعده نحوی این تابع در دستور SELECT به صورت زیر است. 1SELECT AVG(Numerical_Column_Name) 2FROM Table_Name ;به منظور درک بهتر عملکرد تابع AVG، میتوان مثالی از آن ارائه کرد؛ جدول Customers را با دادههای زیر درنظر بگیرید. مثالی از جدول اطلاعات مشتریان در SQLبا استفاده از تابع تجمیعی AVG میتوان میانگین سن مشتریان را به وسیله دستور زیر محاسبه کرد. 1SELECT AVG(age) AS average_age 2FROM Customers;خروجی دستور بالا بهصورت زیر است. تابع MIN برای دستور SELECT در SQLتابع MIN نیز به عنوان یکی دیگر از توابع تجمیعی در SQL محسوب میشود که از آن میتوان برای یافتن کوچکترین مقدار یک ستون استفاده کرد. سینتکس این تابع در دستور SELECT به صورت زیر است. 1SELECT MIN(Numerical_Column_Name) 2FROM Table_Name ;به منظور کسب درک بهتر از عملکرد این تابع، میتوان به عنوان مثال جدول Customers را با دادههای زیر درنظر گرفت. مثالی از جدول اطلاعات مشتریان در SQLبا استفاده از تابع تجمیعی MIN میتوان کمسنترین مشتری را با دستور زیر از جدول Customers استخراج کرد. 1SELECT MIN(age) 2FROM Customers;خروجی دستور بالا در ادامه ملاحظه میشود. تابع MAX در دستور SELECTتابع MAX نیز به عنوان یکی دیگر از توابع تجمیعی در SQL محسوب میشود که از آن میتوان برای پیدا کردن بزرگترین مقدار یک ستون استفاده کرد. قاعده نحوی این تابع در دستور SELECT بهصورت زیر است. 1SELECT MAX(Numerical_Column_Name) 2FROM Table_Name ;به منظور کسب درک بهتر از نحوه عملکرد این تابع، جدول Customers را با دادههای زیر درنظر بگیرید. مثالی از جدول اطلاعات مشتریان در SQLبه وسیله تابع تجمیعی MAX میتوان مشتری با بیشترین سن را با دستور زیر از جدول Customers استخراج کرد. 1SELECT MAX(age) 2FROM Customers;خروجی دستور بالا در ادامه ملاحظه میشود. در ادامه، پس از معرفی فیلمهای آموزشی مرتبط با پایگاه داده، به توضیح سایر روشهای بازیابی اطلاعات با استفاده از دستور SELECT در SQL پرداخته میشود. معرفی فیلم های آموزش پایگاه دادهدورههای آموزش آنلاین به عنوان یکی از بهترین روشهای یادگیری مهارتهای مختلف برای تمامی افراد محسوب میشوند، زیرا این امکان را برای علاقهمندان به یادگیری موضوعات مختلف فراهم میکنند تا در هر مکان و در هر ساعت از شبانه روز به یادگیری مطالب جدید بپردازند و فیلمهای آموزشی را چندین بار مشاهده کنند تا در نهایت به درک جامعی از مفاهیم دست یابند. در وب سایت فرادرس، یکی از کاربردیترین و جامعترین مجموعههای آموزشی، با عنوان «مجموعه آموزشهای پایگاه داده» فراهم و گردآوری شده است تا افراد مشتاق به حوزه برنامه نویسی پایگاه داده با زبان SQL و سایر فناوریهای مربوط به مدیریت پایگاه داده بتوانند از آموزش کامل و تخصصی این حیطه بهرهمند شوند. محتوای این دورههای آموزشی به نحوی فراهم شدهاند که از مفاهیم اولیه تا پیچیده این زبان را شامل میشوند. بدین ترتیب، افراد با سطح دانش و مهارت مختلف در زمینه برنامه نویسی با زبانهای مرتبط با پایگاه داده میتوانند از این آموزشها با توجه به نیاز خود بهرهمند شوند. در تصویر فوق تنها تعداد کمی از دورههای موجود در این مجموعه آموزشی به عنوان نمونه نشان داده شدهاند. برای دسترسی به همه فیلمهای آموزش پایگاه داده فرادرس + اینجا کلیک کنید. استخراج برخی از سطرهای جدول با استفاده از دستور WHEREبا استفاده از دستور SELECT در SQL علاوه بر این که میتوان کلیه اطلاعات برخی از ستونهای جدول را بازیابی کرد، این امکان نیز وجود دارد تا با استفاده از این دستور، بتوانیم برخی از سطرهای جدول را در خروجی بازگردانیم. به عبارتی، میتوان با استفاده از دستور SELECT در SQL شرطی را برای فیلتر کردن سطرها ایجاد کرد تا فقط رکوردهایی در خروجی بازیابی شوند که مطابق شرط تعریف شدهاند. به منظور تعریف شرط در دستور SELECT از عبارت کلیدی WHERE استفاده میشود. خاطرنشان میشود کلمه کلیدی WHERE در سایر دستورات SQL نظیر UPDATE ،ALTER و DELETE نیز کاربرد دارد و با استفاده از آن میتوان تنها بر روی رکوردهای خاصی از جدول تغییرات مورد نظر را اعمال کرد. لازم به ذکر است چنانچه هیچ یک از سطرهای جدول با عبارت شرط مطابقت نداشته باشد، در خروجی هیچ سطری از جدول نشان داده نمیشود. در ادامه، قاعده نحوی دستور SELECT به همراه WHERE برای تعریف شرط به منظور استخراج برخی از سطرهای جدول ملاحظه میشود. 1SELECT * 2FROM Name_of_Table 3WHERE [condition];به منظور تعریف شرط مقابل کلمه کلیدی WHERE، میتوان از دو نوع عملگر استفاده کرد که در ادامه فهرست شدهاند: فیلم آموزش اس کیو ال سرور SQL Server – مقدماتی کلیک کنید «عملگرهای مقایسهای» (Comparison Operations) عملگر برابری ( = ) عملگر کوچکتر از یک مقدار معین ( ; ) بزرگتر از یک مقدار معین ( ; ) عملگر کوچکتر مساوی یک مقدار معین ( ;= ) بزرگتر مساوی یک مقدار معین ( ;= ) نامساوی ( != ) یا ( ;; ) «عملگرهای منطقی» (Logical Operations) عملگرهایی برای اعمال عملیات بر روی یک جدول عملگر AND عملگر OR عملگر NOT عملگر BETWEEN عملگر LIKE در SQL عملگر IS NULL عملگرهایی برای اعمال عملیات بر روی دو جدول عملگر ANY عملگر ALL عملگر EXISTS عملگر IN دستور Union در SQLدر ادامه، به شرح کاربرد هر یک از عملگرهای ذکر شده در بالا، برای تعریف شرط در دستور SELECT در SQL پرداخته میشود. مطلب پیشنهادی: آموزش SQL Server Management Studio | کامل، رایگان و گام به گام شروع مطالعه کاربرد عملگرهای مقایسه ای دستور SELECT در SQL چیست ؟ یکی از سادهترین روشهای تعریف شرط در دستور SELECT، استفاده از عملگرهای مقایسهای است. از این عملگرها میتوان برای مقایسه مقادیر فیلدها یا همان ستونهای جدول با مقدار مد نظر خود استفاده کرد. مقدار مشخص شده برای مقایسه میتواند از نوع عددی یا نوع رشتهای باشد. در ادامه مطلب حاضر، به توضیح کاربرد هر یک از عملگرهای مقایسهای به همراه مثال پرداخته شده است. عملگر مساوی برای تعریف شرط در دستور SELECTبا استفاده از عملگر مساوی میتوان سطرهای جدولی را با دستور SELECT در SQL استخراج کرد که مقدار یکی از ستونهای آنها برابر با مقدار تعیین شده باشد. به عنوان مثال، جدول Orders را در نظر بگیرید که پنج رکورد از اطلاعات سفارشات مشتریان را به صورت زیر شامل میشود. مثالی از جدول اطلاعات سفارشات در SQLبا استفاده از عملگر مساوی میتوان تمامی اطلاعات خرید مشتریان را از جدول Orders استخراج کرد که مقدار ستون amount برای آنها برابر با عدد 400 باشد. 1SELECT * 2FROM Orders 3WHERE amount = 400;خروجی دستور بالا در ادامه ملاحظه میشود. در دستور فوق میتوان به جای علامت * ، نام ستونهایی را نوشت که میخواهیم در خروجی نشان داده شوند. به عنوان مثال، میتوان اطلاعات order_id ،item و amount سفارشاتی را از جدول Orders بهصورت زیر بازیابی کرد که مقدار ستون amount برای آنها برابر با عدد 400 باشد. 1SELECT order_id, item, amount 2FROM Orders 3WHERE amount = 400;خروجی دستور بالا در ادامه نشان داده شده است. عملگر کوچکتر برای تعریف شرط در دستور SELECTبا استفاده از عملگر کوچکتر ( ; ) میتوان سطرهایی را از جدول بازیابی کرد که مقدار ستون مشخص شده آن، کمتر از مقدار تعیین شده باشد. در ادامه، مثالی از جدول Orders ارائه شده است. در این مثال آن اطلاعات سفارشاتی استخراج میشوند که مقدار فیلد amount آنها از مقدار 400 کمتر باشند. 1SELECT order_id, item, amount 2FROM Orders 3WHERE amountعملگر AND در دستور SELECT از عملگر AND به منظور بررسی چندین شرط استفاده میشود. اگر مقادیر فیلدهای سطری از جدول با تمامی شرطها مطابقت داشته باشند، آن سطر از جدول با استفاده از دستور SELECT در SQL بازیابی میشود. مثال زیر، جدولی به نام Customers را نشان میدهد که شامل اطلاعات مشتریان است. مثالی از جدول اطلاعات مشتریان در SQLدر ادامه، دستوری برای استخراج سطرهایی از جدول Customers با استفاده از عملگر AND نوشته شده است. بر اساس این قطعه کد، سطرهایی از جدول بازیابی میشوند که مقادیر ستونهای country و last_name در آنها به ترتیب برابر با USA و Doe باشند. 1SELECT first_name, last_name 2FROM Customers 3WHERE country = 'USA' AND last_name = 'Doe';خروجی دستور بالا در ادامه آمده است. عملگر OR در دستور SELECTاز عملگر OR به منظور بررسی چندین شرط استفاده میشود. اگر مقادیر فیلدهای سطری از جدول، حداقل با یکی از شرطها مطابقت داشته باشند، آن سطر از جدول با استفاده از دستور SELECT در SQL بازیابی میشود. در ادامه، قطعه کدی برای استخراج سطرهایی از جدول Customers با استفاده از عملگر OR نوشته شده است. بر اساس این قطعه کد، سطرهایی از جدول بازیابی میشوند که مقادیر فیلد country در آنها برابر با USA یا مقادیر ستون name آنها برابر با Doe باشد. 1SELECT first_name, last_name 2FROM Customers 3WHERE country = 'USA' OR last_name = 'Doe';خروجی دستور بالا به صورت زیر است. عملگر NOT در دستور SELECTاز عملگر NOT به منظور بازیابی سطرهایی از جدول استفاده میشود که مقدار فیلد مورد نظر آنها برابر با عبارت مشخص شده در شرط نباشد. خاطرنشان میشود به جای عملگر NOT میتوان از عملگر مقایسهای یا != نیز استفاده کرد. در ادامه، قطعه کدی برای استخراج سطرهایی از جدول Customers با استفاده از عملگر NOT نوشته شده است. بر اساس این قطعه کد، سطرهایی از جدول بازیابی میشوند که مقادیر فیلد country آنها برابر با مقدار USA نباشند. 1SELECT first_name, last_name 2FROM Customers 3WHERE NOT country = 'USA';خروجی دستور بالا در ادامه ارائه شده است. عملگر BETWEEN دستور SELECTاز عملگر منطقی BETWEEN در دستور SELECT زمانی استفاده میشود که نیاز است برای بازیابی سطری از جدول، محدودهای از مقادیر با مقدار ستونی از جدول مقایسه شوند. اگر مقدار ستون در محدوده تعریف شده قرار گیرد، اطلاعات آن سطر در خروجی بازگردانده میشود. به منظور ارائه مثالی از عملگر BETWEEN، میتوان از جدول Orders استفاده کرد که اطلاعات سفارشات مشتریان را شامل میشود. مثالی از جدول اطلاعات سفارشات مشتریان در SQLبا در اختیار داشتن دادههای جدول Orders، میتوان سطرهایی از جدول را در خروجی نمایش داد که مقادیر فیلد amount در آنها بین 300 تا 500 باشند. قطعه کدی که برای بازیابی چنین اطلاعاتی استفاده میشود، در ادامه ملاحظه میشود. 1SELECT item, amount 2FROM Orders 3WHERE amount BETWEEN 300 AND 500;با اجرای دستور بالا، خروجی بهصورت زیر خواهد بود. همچنین، میتوان با استفاده از عملگر NOT و BETWEEN در دستور SELECT، سطرهایی از جدول را استخراج کرد که مقادیر فیلد مشخص شده، در محدوده تعیین شده قرار نگیرد. در ادامه، مثالی از نحوه کاربرد عملگرهای NOT و BETWEEN بهطور همزمان ارائه شده است. بر اساس این قطعه کد، سطرهایی از جدول استخراج میشوند که مقادیر ستون amount در آنها بین 300 تا 500 نباشند. 1SELECT item, amount 2FROM Orders 3WHERE amount NOT BETWEEN 300 AND 500;خروجی دستور بالا در ادامه ملاحظه میشود. از عملگر BETWEEN میتوان برای گذاشتن شرط بر روی مقادیر رشتهای نیز استفاده کرد. به عنوان مثال، قطعه کد زیر را درنظر بگیرید. 1SELECT item, amount 2FROM Orders 3WHERE item BETWEEN 'I' AND 'M';با استفاده از دستور بالا، سطرهایی از جدول Orders انتخاب میشوند که اولین کاراکتر مقدار فیلد item آنها، یکی از حروف I ،J ،K و L باشد. خروجی دستور بالا در ادامه ملاحظه میشود. خاطرنشان میشود مقادیر فیلد item که با حرف M آغاز شده باشند، از جدول بازیابی نمیشوند. اگر بخواهیم مقادیری از ستون item بازیابی شوند که با حروف M نیز آغاز شده باشند، میتوان از علامت ~ بهصورت زیر استفاده کرد. 1SELECT item, amount 2FROM Orders 3WHERE item BETWEEN 'I' AND 'M~';خروجی دستور بالا در ادامه ملاحظه میشود. بر اساس تصویر بالا، مقادیری از ستون item که با حرف M نیز آغاز شدهاند، در خروجی مشاهده میشوند. مطلب پیشنهادی: اتصال رشتهها در SQL و روشهای استفاده هوشمند از آن شروع مطالعه عملگر LIKE دستور SELECT از عملگر LIKE به منظور استخراج سطرهایی از جدول استفاده میشود که مقدار فیلد مشخص شده آنها، مشابه با الگوی متنی تعریف شده توسط این عملگر باشد. در دستور زیر، مثالی از نحوه کاربرد این عملگر ارائه شده است. بر اساس این دستور، سطرهایی از جدول Customers در خروجی بازگردانده میشوند که مقدار فیلد country آنها برابر با «UK» باشد. 1SELECT * 2FROM Customers 3WHERE country LIKE 'UK';خروجی دستور بالا در ادامه ملاحظه میشود. از عملگر LIKE نیز میتوان برای تعریف الگوهای متنی استفاده کرد. به عنوان مثال، بر اساس قطعه کد زیر، سطرهایی از جدول Customers استخراج میشوند که مقدار فیلد last_name در آنها با حرف R آغاز شده باشد. علامت % میتواند شامل یک یا چند کاراکتر بعد از حرف R باشد. 1SELECT * 2FROM Customers 3WHERE last_name LIKE 'R%';خروجی دستور بالا بهصورت زیر است. از علامت _ نیز میتوان برای مشخص کردن تنها یک کاراکتر استفاده کرد. در دستور زیر، نحوه استفاده از این علامت برای تعریف الگوی متنی با دستور LIKE نشان داده شده است. 1SELECT * 2FROM Customers 3WHERE country LIKE 'U_';طبق دستور بالا، سطرهایی از جدول Customers بازیابی میشوند که مقدار فیلد country آنها با کاراکتر U آغاز شده و دارای دو حرف باشد. خروجی این قطعه کد در ادامه ملاحظه میشود. عملگر IS NULL دستور SELECTاز عملگر IS NULL در دستور SELECT برای بررسی NULL بودن فیلد خاصی از جدول استفاده میشود. به عبارتی، این عملگر، سطرهایی از جدول را استخراج میکند که مقدار فیلد مشخص شده آنها برابر با NULL باشد. جدول Employee را درنظر بگیرید که شامل دادههای زیر است. مثالی از جدول اطلاعات کارمندان در SQLدر ادامه، قطعه کدی از نحوه کاربرد این عملگر ارائه شده است. بر اساس این دستور، سطرهایی از جدول Employee بازیابی میشوند که مقدار فیلد email آنها برابر با NULL باشد. 1SELECT * 2FROM Employee 3WHERE email IS NULL;خروجی دستور بالا به صورت زیر است. عملگر IS NULL را میتوان با عملگر NOT ترکیب کرد و برای استخراج سطرهایی از جدول از آن استفاده کرد که مقدار فیلد مشخص شده آنها برابر با NULL نباشد. در ادامه، نحوه کاربرد این عملگر ترکیبی برای بازیابی سطرهای جدول Employee با مقادیر غیر NULL از ستون email ارائه شده است. 1SELECT * 2FROM Employee 3WHERE email IS NOT NULL;خروجی دستور فوق در ادامه ملاحظه میشود. عملگرهایی که تا اینجا توضیح داده شدند، بر روی یک جدول در SQL قابل اجرا بودند. در ادامه مطلب حاضر، به توضیح عملگرهای منطقی ANY ،ALL ،EXISTS و IN پرداخته میشود که برای استخراج اطلاعات، به دادههای دو جدول احتیاج دارند و باید دو دستور SQL را با استفاده از این عملگرها با یکدیگر ترکیب کرد. فیلم آموزش اس کیو ال سرور SQL Server – مقدماتی در فرادرس کلیک کنید عملگر ANY دستور SELECTعملگر ANY نوعی از عملگرهای منطقی در SQL محسوب میشود که با استفاده از آن میتوان دستورات ترکیبی نوشت. عملگر ANY مقداری را از جدول اول با تمامی مقادیر جدول مقایسه میکند و سطرهایی را از جدول اول استخراج میکند که مقادیر فیلد آن جدول بر اساس شرط مشخص شده، با مقادیر هر یک از فیلدهای مشابه از جدول دوم مطابقت داشته باشد. مثال زیر را برای درک نحوه عملکرد عملگر ANY درنظر بگیرید. در این مثال، دو جدول Teachers و Students با دادههای مشخص شده وجود دارند. از جدول Teachers میتوان اطلاعات معلمانی را که سن آنها مشابه با سن دانشآموزان است، با استفاده از عملگر ANY استخراج کرد. دستوری که برای بازیابی اطلاعات معلمان استفاده میشود، بهصورت زیر است. 1SELECT * 2FROM Teachers 3WHERE age = ANY ( 4 SELECT age 5 FROM Students 6);دستور فوق، از دو دستور SELECT تشکیل شده است که دستور SELECT دوم به عنوان پارامتر عملگر ANY محسوب میشود. با اجرای دستور بالا، فقط سطر اول از جدول Teachers استخراج میشود زیرا سن فردی به نام Peter مشابه سن فردی به نام Joe در جدول Students است. مطلب پیشنهادی: بانک اطلاعاتی چیست و چطور آن را یاد بگیریم ؟ — راهنمای شروع به زبان ساده شروع مطالعه در ادامه به توضیح عملگر ALL در دستور SELECT پرداخته و نحوه استخراج اطلاعات با استفاده از این عملگر از جداول بانک اطلاعاتی به همراه مثال شرح داده میشود. عملگر ALL دستور SELECTعملگر ALL نیز نوعی از عملگرهای منطقی در SQL محسوب میشود که با استفاده از آن میتوان دستورات ترکیبی نوشت. با این عملگر میتوان مقداری را از جدول اول با تمامی مقادیر جدول مقایسه و سطرهایی را از جدول اول استخراج کرد که مقادیر فیلد آن بر اساس شرط مشخص شده، با تمامی مقادیر فیلد مشابه از جدول دوم مطابقت داشته باشد. مثال زیر را برای درک نحوه عملکرد عملگر ALL درنظر بگیرید. در این مثال، دو جدول Teachers و Students با دادههای مشخص شده وجود دارند. از جدول Teachers میتوان اطلاعات معلمانی را که سن آنها بیشتر از سن تمامی دانشآموزان است، با استفاده از عملگر ALL استخراج کرد. دستوری که برای بازیابی اطلاعات معلمان استفاده میشود، بهصورت زیر است. 1SELECT * 2FROM Teachers 3WHERE age > ALL ( 4 SELECT age 5 FROM Students 6);دستور فوق، از دو دستور SELECT تشکیل شده است که دستور SELECT دوم به عنوان پارامتر عملگر ALL محسوب میشود. با اجرای دستور بالا، فقط سطر دوم از جدول Teachers استخراج میشود، زیرا سن فردی به نام Megan بیشتر از سن تمامی دانشآموزان در جدول Students است. فیلم آموزش SQL Server اس کیو ال سرور – تکمیلی در فرادرس کلیک کنید عملگر EXISTS دستور SELECTعملگر EXISTS نوع دیگری از عملگرهای منطقی در SQL تلقی میشود که از آن میتوان برای ترکیب دو دستور SELECT استفاده کرد. این نوع عملگر، بر اساس شرطی که در دستور SELECT درونی تعریف شده است، اطلاعاتی را با استفاده از دستور SELECT بیرونی استخراج میکند. چنانچه شرط تعریف شده در SELECT درونی صادق نباشد، هیچ سطری در خروجی بازیابی نمیشود. به منظور درک بهتر عملکرد این عملگر، میتوان دو جدول Customers و Orders را بهصورت زیر درنظر گرفت. با استفاده از عملگر EXISTS میتوان با یک دستور اطلاعات مشتریانی را از جدول Customers استخراج کرد که محصولی را خریداری کردهاند و اطلاعات customer_id آنها در جدول Orders ثبت شده است. به منظور بازیابی چنین اطلاعاتی، میتوان از دستور زیر استفاده کرد. 1SELECT customer_id, first_name 2FROM Customers 3WHERE EXISTS ( 4 SELECT order_id 5 FROM Orders 6 WHERE Orders.customer_id = Customers.customer_id 7);خروجی دستور بالا در ادامه آمده است. همانطور که ملاحظه میشود، در خروجی فقط اطلاعات افرادی از جدول Customers بازیابی شدهاند که customer_id آنها در جدول Orders وجود دارد. با ترکیب دستور EXISTS و NOT نیز میتوان اطلاعات مشتریانی را از جدول Customers استخراج کرد که خریدی انجام ندادهاند و اطلاعات customer_id آنها در جدول Orders ثبت نشده است. در ادامه، مثالی از نحوه کاربرد دو عملگر EXISTS و NOT ارائه میشود. 1SELECT customer_id, first_name 2FROM Customers 3WHERE NOT EXISTS ( 4 SELECT order_id 5 FROM Orders 6 WHERE Orders.customer_id = Customers.customer_id 7);خروجی دستور بالا به صورت زیر است. عملگر IN دستور SELECTاز عملگر منطقی IN میتوان برای تعریف لیستی از مقادیر استفاده و سطرهایی را از جدول مورد نظر با دستور SELECT استخراج کرد که مقادیر فیلدی از جدول، برابر با یکی از آیتمهای لیست تعریف شده توسط عملگر IN باشد. به منظور درک بهتر کاربرد عملگر IN در SQL میتوان مثالی کاربردی را ارائه کرد؛ جدول Customers را با دادههای زیر درنظر بگیرید: مثالی از جدول مشتریان در SQLبا استفاده از عملگر IN میتوان اطلاعات مشتریانی را از این جدول استخراج کرد که آدرس آنها USA و UK باشد. به منظور بازیابی چنین سطرهایی میتوان از دستور زیر استفاده کرد. 1SELECT first_name, country 2FROM Customers 3WHERE country IN ('USA', 'UK');خروجی دستور بالا در ادامه ملاحظه میشود. با ترکیب دستور IN و NOT نیز میتوان اطلاعات مشتریانی را از جدول Customers استخراج کرد که مقدار فیلد مشخص شده با آیتمهای تعریف شده توسط عملگر IN مطابقت نداشته باشد. در ادامه، نحوه کاربرد دو عملگر IN و NOT ارائه شده است. 1SELECT first_name, country 2FROM Customers 3WHERE country NOT IN ('UK', 'UAE');با استفاده از دستور بالا، سطرهایی از جدول Customers بازیابی میشوند که آدرس آنها UK و UAE نباشد. در ادامه، خروجی دستور بالا ملاحظه میشود. در ادامه مطلب حاضر، به توضیح کاربرد دستور GROUP BY و نحوه استفاده از آن در دستور SELECT پرداخته میشود. فیلم آموزش اس کیو ال سرور SQL Server – پیشرفته در فرادرس کلیک کنید بازیابی اطلاعات جدول به صورت گروه بندی شده با دستور GROUP BYبه منظور گروهبندی سطرهای جدول بر اساس ستونها (فیلدها) میتوان از دستور GROUP BY استفاده کرد. سینتکس این دستور در ادامه آمده است. 1SELECT column_Name_1, column_Name_2, ....., column_Name_N aggregate_function_name(column_Name2) 2FROM table_name 3GROUP BY column_Name1;به منظور درک بهتر عملکرد این دستور، میتوان از مثالی کمک گرفت؛ جدول Customers با دادههای آن را درنظر بگیرید: مثالی از جدول مشتریان در SQLبا استفاده از دستور GROUP BY میتوان هر سطر از جدول را بر اساس ستون country گروهبندی و تعداد مشتریان هر کشور را با استفاده از تابع تجمیعی COUNT() شمارش کرد. به عبارتی، دستور GROUP BY را میتوان به همراه هر یک از توابع تجمیعی در SQL به کار برد. 1SELECT country, COUNT(customer_id) 2FROM Customers 3GROUP BY country;خروجی دستور بالا در ادامه ملاحظه ارائه شده است. به منظور گروهبندی اطلاعات جدول با استفاده از دستور GROUP BY، میتوان بیش از یک ستون را برای دستهبندی اطلاعات مدنظر قرار داد. جدول Persons را با دادههای زیر درنظر بگیرید. مثالی از جدول اطلاعات افراد در SQLبا دستور GROUP BY میتوان از دادههای جدول Persons، شهرهای هر کشور را استخراج کرد. بدین منظور باید دستور GROUP BY را برای گروهبندی دو ستون country و state به کار برد تا در وهله اول، اطلاعات جدول بر اساس نام کشورها گروهبندی شوند و سپس به ازای هر کشور، دستهبندی جدیدی بر روی شهرهای آنها انجام شود. میتوان از دستور SQL زیر برای این منظور استفاده کرد. 1SELECT country, state 2FROM Persons 3GROUP BY country, state;خروجی دستور بالا در ادامه ملاحظه میشود. کاربرد دستور HAVING در SQL برای استخراج برخی از اطلاعات گروه بندی شده از جدولکاربرد دستور HAVING مشابه با دستور WHERE است. این دستور معمولاً به همراه دستور GROUP BY استفاده میشود و شرطی را بر روی خروجی آن اعمال میکند. همچنین، این دستور، شرطی را برای خروجی توابع تجمیعی درنظر میگیرد. قاعده نحوی دستور HAVING در ادامه ارائه شده است. 1SELECT column_Name_1, column_Name_2, ....., column_Name_N aggregate_function_name(column_Name_2) 2FROM table_name 3GROUP BY column_Name1 4HAVING [condition];به منظور درک بهتر عملکرد این دستور، میتوان از یک مثال کمک گرفت؛ جدول Customers را با دادههای زیر درنظر بگیرید. مثالی از جدول اطلاعات مشتریان در SQLهدف این است که تعداد مشتریان به ازای هر کشور محاسبه شوند و در نهایت نام کشورهایی که بیش از 1 مشتری دارند، در خروجی نمایش داده شوند. بدین منظور، باید از تابع تجمیعی COUNT و دستور GROUP BY بهطور همزمان استفاده کرد تا گروهبندی افراد بر اساس نام کشورها انجام و سپس تعداد مشتریان از هر کشور شمرده شود. سپس، با اعمال شرط بر روی تعداد مشتریان هر کشور با استفاده از دستور HAVING میتوان خروجی مدنظر خود را بدست آورد. دستور زیر، نحوه استفاده از HAVING را نشان میدهد. 1SELECT COUNT(customer_id), country 2FROM Customers 3GROUP BY country 4HAVING COUNT(customer_id) > 1;خروجی دستور بالا در ادامه آمده است. تفاوت دستور WHERE و HAVING در SQL چیست ؟بهطور کلی میتوان تفاوت دستور WHERE و HAVING را بهصورت زیر خلاصه کرد: از دستور HAVING برای بررسی شرط روی مجموعهای از سطرها استفاده میشود، در حالی که دستور WHERE شرط را بر روی هر سطر از جدول اعمال میکند. میتوان از دستور HAVING برای اعمال شرط بر روی خروجی توابع تجمیعی استفاده کرد، در حالی که دستور WHERE نمیتواند شرطی را برای خروجی این توابع درنظر بگیرد. از دستور HAVING بعد از دستور GROUP BY استفاده میشود، در حالی که جایگاه استفاده از دستور WHERE قبل از دستور GROUP BY است. فیلم آموزش معرفی دستورات اصلی SQL در اندروید (رایگان) در فرادرس کلیک کنید بازیابی اطلاعات جدول با ترتیب صعودی و نزولی در SQLهنگام استخراج اطلاعات از جدول SQL میتوان نتایج را بر اساس مقادیر ستونها، بهصورت صعودی و نزولی مرتب کرد. برای این منظور، از ORDER BY در دستور SELECT استفاده میشود. به همراه دستور ORDER BY، نام ستونی نوشته میشود که بناست مقادیر آن مرتب شوند. پس از نام ستون، از کلمه کلیدی ASC یا DESC استفاده میشود که به ترتیب نوع مرتبسازی صعودی و نوع مرتبسازی نزولی را مشخص میکنند. چنانچه نوع مرتبسازی ستون با کلمات ASC و DESC مشخص نشود، مرتبسازی ستون بهطور پیشفرض بهشکل صعودی انجام میشود. سینتکس دستور ORDER BY در ادامه آمده است. 1SELECT ColumnName1,...,ColumnNameN 2FROM TableName 3ORDER BY ColumnName ASC;به منظور کسب درک بهتر از نحوه عملکرد دستور ORDER BY میتوان مثالی از جدول Customers را در نظر گرفت و دادههای این جدول را بر اساس ستون file_name مرتب کرد. مثالی از جدول اطلاعات مشتریان در SQLبدین منظور، میتوان از دستور زیر برای مرتب کردن دادهها استفاده کرد. 1SELECT * 2FROM Customers 3ORDER BY first_name;خروجی دستور بالا در ادامه ملاحظه میشود. همچنین، میتوان دادههای جدول Customers را بهصورت نزولی بر اساس سن مشتریان با دستور زیر مرتب کرد: 1SELECT * 2FROM Customers 3ORDER BY age DESC;خروجی دستور بالا بهصورت زیر است. بازیابی اطلاعات از چندین جدول با دستور SELECT در SQLمطالب بخش قبلی در این نوشته، به بازیابی اطلاعات از یک جدول در SQL اختصاص داشت. در بخش فعلی، به آموزش نحوه بازیابی اطلاعات از چندین جدول SQL پرداخته میشود. بدین منظور، باید جداولی که بناست اطلاعاتی از آنها استخراج شود، با استفاده از کلیدهای خارجی به هم متصل شده باشند. به منظور ارتباط جداول بر اساس کلیدهای خارجی، از دستور JOIN استفاده میشود. در SQL پنج نوع دستور JOIN برای ترکیب جداول وجود دارد که در ادامه فهرست شدهاند: دستور INNER JOIN LEFT JOIN دستور RIGHT JOIN FULL OUTER JOIN دستور CROSS JOINدر ادامه این بخش از مطلب دستور SELECT در SQL، به توضیح کاربرد هر یک از انواع دستورات JOIN به همراه مثال پرداخته میشود. مطلب پیشنهادی: دستور Join و انواع آن در SQL — راهنمای جامع شروع مطالعه دستور INNER JOIN با استفاده از دستور INNER JOIN در SQL میتوان دو جدول را بر اساس ستون مشترکشان به یکدیگر متصل و با دستور SELECT سطرهای مورد نیاز را از آنها استخراج کرد. خاطرنشان میشود میتوان به جای کلمه کلیدی INNER JOIN، از JOIN نیز استفاده کرد. قاعده نحوی این دستور در ادامه آمده است. 1SELECT columns 2FROM table1 3INNER JOIN table2 4ON table1.column_name = table2.column_name;به منظور درک بهتر عملکرد دستور INNER JOIN میتوان مثالی را ارائه داد؛ دو جدول Customers و Orders را با دادههای زیر درنظر بگیرید. فیلد customer در جدول Orders به عنوان کلید خارجی این جدول محسوب میشود و ارتباط این دو جدول توسط دو ستون customer در جدول Orders و customer_id در جدول Customers برقرار میشود. با استفاده از دستور INNER JOIN میتوان اطلاعات مشتریانی را از جدول Customers استخراج کرد که سفارشی را ثبت کرده باشند. بدین منظور، میتوان از دستور زیر استفاده کرد. 1SELECT Customers.customer_id, Customers.first_name, Orders.amount 2FROM Customers 3INNER JOIN Orders 4ON Customers.customer_id = Orders.customer;همانطور که در دستور بالا آمده، چون در دستور SELECT از نام دو جدول استفاده شده است، به منظور دستیابی به نام ستونهای هر جدول، باید نام جدول را نیز به همراه علامت نقطه نوشت. در مقابل کلمه کلیدی FROM، نام جدولی نوشته میشود که ستونهای آن بنا است در خروجی بازگردانده شوند. کلمه کلیدی ON نیز مشخص میکند دو جدول انتخاب شده برای JOIN، بر اساس چه ستونهایی به یکدیگر متصل میشوند. خروجی دستور بالا در ادامه ملاحظه میشود. دستور LEFT JOINدستور LEFT JOIN نیز نوع دیگری از دستور JOIN است که از آن برای استخراج اطلاعات از دو جدول متصل به هم استفاده میشود. رابطه بین این جداول را میتوان بر اساس ستون مشترکشان برقرار کرد. دستور LEFT JOIN نیز همانند دستور INNER JOIN به منظور بازیابی اطلاعات مشترک دو جدول استفاده میشود. علاوهبر اطلاعات مشترک دو جدول، دستور LEFT JOIN کلیه اطلاعات یکی از جداول را نیز در خروجی برمیگرداند. جدولی که کلیه اطلاعات آن در خروجی بازگردانده میشود، جدولی است که در مقابل کلمه کلیدی ON، در سمت چپ علامت تساوی قرار میگیرد. در ادامه، قاعده نحوی دستور LEFT JOIN ملاحظه میشود. 1SELECT columns 2FROM table1 3LEFT JOIN table2 4ON table1.column_name = table2.column_name;بر اساس قاعده نحوی بالا، جدول سمت چپ، جدول table1 است که در سمت چپ علامت = در مقابل کلمه کلیدی ON نوشته شده است. به منظور درک بهتر عملکرد دستور LEFT JOIN به مثالی در SQL میپردازیم. جدولهای Customers و Orders را با مقادیر دادههای زیر در نظر بگیرید. مثالی از LEFT JOIN در دستور SELECT در SQLبه منظور استخراج اطلاعات مشتریانی که سفارشی را ثبت کردهاند و سایر مشتریانی که هنوز محصولی خریداری نکردهاند، میتوان از دستور LEFT JOIN استفاده کرد. در این مثال، جدولی که کلیه اطلاعاتش در خروجی بازگردانده میشود، جدول Customers است که در هنگام اتصال دو جدول Customers و Orders، باید نام آن در سمت چپ علامت = در مقابل کلمه کلیدی ON قرار گیرد. 1SELECT Customers.customer_id, Customers.first_name, Orders.amount 2FROM Customers 3LEFT JOIN Orders 4ON Customers.customer_id = Orders.customer;خروجی دستور بالا در ادامه ملاحظه میشود. بر اساس این خروجی، مقدار ستون amount مربوط به مشتریانی برابر با تهی است که سفارشی ثبت نکردهاند و اطلاعات خرید آنها در جدول Orders ثبت نشده است. به عبارتی، با ادغام دو جدول Customers و Orders، برای سطرهایی از جدول سمت چپ (جدول Customers) که اطلاعاتشان در جدول Orders نیست، در ستون amount آنها (که این ستون، فیلدی از جدول Orders است)، هیچ مقداری وجود ندارد. فیلم آموزش فرادرس آشنایی با View و پیاده سازی آن در SQL Server – رایگان در فرادرس کلیک کنید دستور RIGHT JOIN در SELECT اس کیو الدستور RIGHT JOIN نیز نوع دیگری از دستور JOIN است که از آن برای استخراج اطلاعات از دو جدول متصل به هم استفاده میشود. اتصال بین این جداول را میتوان بر اساس ستون مشترکشان برقرار کرد. دستور RIGHT JOIN نیز همانند دستور INNER JOIN به منظور بازیابی اطلاعات مشترک دو جدول استفاده میشود. علاوه بر اطلاعات مشترک دو جدول، دستور RIGHT JOIN کلیه اطلاعات یکی از جداول را نیز در خروجی برمیگرداند. جدولی که کلیه اطلاعات آن در خروجی بازگردانده میشود، جدولی است که در مقابل کلمه کلیدی ON، در سمت راست علامت مساوی قرار میگیرد. در ادامه، قاعده نحوی دستور RIGHT JOIN آمده است. 1SELECT columns 2FROM table1 3RIGHT JOIN table2 4ON table1.column_name = table2.column_name;بر اساس قاعده نحوی بالا، جدول سمت راست، جدول table2 است که در سمت راست علامت = در مقابل کلمه کلیدی ON نوشته میشود. به منظور درک بهتر عملکرد دستور RIGHT JOIN به ارائه مثالی در SQL پرداختهایم. جدولهای Customers و Orders را با مقادیر دادههای زیر در نظر بگیرید. مثالی از RIGHT JOIN در دستور SELECT در SQLبه منظور استخراج اطلاعات کلیه سفارشات از جدول Orders و اطلاعات مشتریانی که محصولی خریداری کردهاند، میتوان از دستور RIGHT JOIN استفاده کرد. در این مثال، جدولی که کلیه اطلاعاتش در خروجی بازگردانده میشود، جدول Orders است که در هنگام اتصال دو جدول Customers و Orders، باید نام آن در سمت راست علامت = در مقابل کلمه کلیدی ON قرار بگیرد. 1SELECT Customers.customer_id, Customers.first_name, Orders.amount 2FROM Customers 3RIGHT JOIN Orders 4ON Customers.customer_id = Orders.customer;خروجی دستور بالا در ادامه آمده است. بر اساس این خروجی، کلیه سطرهای مربوط به فیلد amount از جدول Orders بازیابی شدهاند. بهعلاوه، اطلاعات مشتریانی که خریدی انجام دادهاند و اطلاعات آنها در جدول Orders ثبت شده است، در خروجی نیز بازگردانده میشود. مقادیر خروجی فیلدهای customer_id و first_name مربوط به سفارشاتی که در جدول Orders ثبت شدهاند اما اطلاعات آنها در جدول Customers وجود ندارد، با دستور RIGHT JOIN با تهی مقداردهی میشوند. دستور FULL OUTER JOINدستور FULL OUTER JOIN نیز نوع دیگری از دستور JOIN است که از آن برای استخراج اطلاعات از دو جدول متصل به هم استفاده میشود. اتصال بین این جداول را نیز میتوان بر اساس ستون مشترکشان برقرار کرد. با استفاده از این دستور میتوان کلیه دادههای هر دو جدول را در خروجی بازگرداند. چنانچه سطرهای هر از جداول، دارای فیلد مشترکی با جدول دیگر نباشد، در خروجی، مقدار تهی برای آن فیلدها درنظر گرفته میشود. قاعده نحوی دستور FULL OUTER JOIN بهصورت زیر است. 1SELECT columns 2FROM table1 3FULL OUTER JOIN table2 4ON table1.column_name = table2.column_name;به منظور درک بهتر عملکرد دستور FULL OUTER JOIN در ادامه به ارائه مثالی در SQL پرداخته میشود. جدولهای Customers و Orders را با دادههای زیر در نظر بگیرید. به منظور استخراج کلیه دادهها از هر دو جدول، میتوان از دستور FULL OUTER JOIN به صورت زیر استفاده کرد. 1SELECT Customers.customer_id, Customers.first_name, Orders.amount 2FROM Customers 3FULL OUTER JOIN Orders 4ON Customers.customer_id = Orders.customer;خروجی دستور بالا در ادامه ملاحظه میشود. بر اساس این خروجی، کلیه سطرهای مربوط به هر دو جدول Orders و Customers بازیابی شدهاند. با استفاده از دستور FULL OUTER JOIN در سطرهایی از هر دو جدول که بر اساس کلید خارجی، اشتراکاتی ندارند، مقدار ستونهای جدول متناظر آنها برابر با تهی درنظر گرفته میشود. دستور CROSS JOIN برای SELECT در SQLاز دستور CROSS JOIN میتوان به منظور ترکیب دادههای دو جدول به نحوی استفاده کرد که هر سطر از جدول اول، در ترکیب با هر سطر از جدول دوم قرار گیرد و در خروجی، تمامی حالات ترکیب سطرهای هر دو جدول بازیابی شوند. بدینترتیب، چنانچه جدول اول دارای دو سطر و جدول دوم دارای سه سطر باشند، خروجی دستور CROSS JOIN جدولی خواهد بود که دارای شش سطر ترکیبی از جدول اول و دوم است. قاعده نحوی این دستور در ادامه ملاحظه میشود. 1SELECT TableName1.columnName1, TableName2.columnName2 2FROM TableName1 3CROSS JOIN TableName2 4ON TableName1.ColumnName = TableName2.ColumnName;به منظور درک بهتر عملکرد دستور CROSS JOIN در ادامه مثالی در SQL ارائه شده است؛ جدولهای Employee و Department را با مقادیر دادههای زیر در نظر بگیرید. به منظور استخراج اطلاعات از این دو جدول با استفاده از دستور CROSS JOIN میتوان از دستور زیر استفاده کرد. 1SELECT * 2FROM Employee 3CROSS JOIN Department;خروجی دستور بالا در ادامه ملاحظه میشود. خروجی دستور CROSS JOIN (به منظور بزرگنمایی تصویر، بر روی آن کلیک کنید)همانطور که در خروجی دستور CROSS JOIN آمده است، هر سطر از جدول Employee در ترکیب با هر سطر از جدول Department قرار میگیرد. فیلم آموزش SQL Server اس کیو ال سرور – تکمیلی در فرادرس کلیک کنید جمعبندیامروزه، دادههای مهم سازمانها در پایگاههای داده ذخیره میشوند و افراد مشتاق به حیطه کار با دادهها به منظور دسترسی به آنها، اعمال پردازشهای مختلف روی آنها و گزارشگیری از دادههای مربوطه، باید به یکی از زبانهای پایگاه داده تسلط داشته باشند. از آنجا که زبان SQL به عنوان یکی از پرکاربردترین زبانهای پایگاه داده به شمار میرود، در مطلب حاضر سعی شد به توضیح عملکرد یکی از پرکاربردترین دستورات این زبان، یعنی دستور SELECT در SQL پرداخته شود. با استفاده از این دستور میتوان با روشهای مختلف به استخراج اطلاعات از جداول پایگاه داده پرداخت و در این مقاله، سعی بر این شد به توضیح مفصل شیوههای استخراج اطلاعات از یک جدول و بازیابی دادهها از چند جدول به همراه ارائه مثالهای کاربردی پرداخته شود. |
CopyRight 2018-2019 实验室设备网 版权所有 |